#pragma once
#ifndef _fastbird_IObject_header_included_
#define _fastbird_IObject_header_included_

#include <Engine/SmartPtr.h>

namespace fastbird
{
    class IScene;
	class IObject : public ReferenceCounter
	{
	public:
		virtual ~IObject() {}
        virtual void OnAttachedToScene(IScene* pScene) = 0;
        virtual void OnDetachedFromScene(IScene* pScene) = 0;
		
		virtual void Render() = 0;
		virtual void PreRender() = 0;
		virtual void PostRender() = 0;
	};
}

#endif //_fastbird_IObject_header_included_